package com.algorithm.liyc.greedy;

/**
 * 0122.买卖股票的最佳时机II
 *
 * 给定一个数组，它的第 i 个元素是一支给定股票第 i 天的价格。
 *
 * 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易（多次买卖一支股票）。
 *
 * 注意：你不能同时参与多笔交易（你必须在再次购买前出售掉之前的股票）。
 *
 *
 * 本题首先要清楚两点：
 * ● 只有一只股票！
 * ● 当前只有买股票或者卖股票的操作
 *
 * 想获得利润至少要两天为一个交易单元。
 *
 * 此时就是把利润分解为每天为单位的维度，而不是从0天到第3天整体去考虑！
 * 其实我们需要收集每天的正利润就可以，收集正利润的区间，就是股票买卖的区间，而我们只需要关注最终利润，不需要记录区间。
 * 局部最优：收集每天的正利润，全局最优：求得最大利润。
 * @author Liyc
 * @date 2024/1/25 11:09
 **/

public class Solution4 {
    /**
     * 贪心思路
     * @param prices
     * @return
     */
    public int maxProfit(int[] prices) {
        int result = 0;
        for (int i = 1; i < prices.length; i++) {
            result += Math.max(prices[i] - prices[i-1], 0);
        }
        return result;
    }
}
